package com.dev.springBootDemo;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Collectors;

public class EmployeeProcessor {

    public static void main(String[] args) {
        // 创建员工列表
        List<Employee> employees = new ArrayList<>();
        employees.add(new Employee("张三", 35));
        employees.add(new Employee("李四", 28));
        employees.add(new Employee("王五", 42));
        employees.add(new Employee("陈六", 31));

        // 使用Supplier初始化一个空的List<String>，用于存放结果
        Supplier<List<String>> supplier = ArrayList::new;

        // 使用Predicate过滤年龄大于30岁的员工
        Predicate<Employee> predicate = employee -> employee.getAge() > 30;

        // 使用Function将Employee转换为其大写名字
        Function<Employee, String> function = employee -> employee.getName().toUpperCase();

        // 使用Consumer将转换后的名字添加到List中
        Consumer<String> consumer = supplier.get()::add;

        // 执行操作
        List<String> filteredNames = employees.stream()
                .filter(predicate)
                .map(function)
                .collect(Collectors.toList());

        // 使用Consumer打印结果
        filteredNames.forEach(System.out::println);
    }
}
